home *** CD-ROM | disk | FTP | other *** search
/ EnigmA Amiga Run 1999 March / EnigmA AMIGA RUN 35 (1999)(G.R. Edizioni)(IT)[!][issue 1999-03].iso / earcd / misc / pdflib / makefile.gcc < prev    next >
Makefile  |  1999-01-01  |  9KB  |  359 lines

  1. # ----------------------------------------------------------------------------
  2. # Makefile for PDFlib, Unix version
  3. # (C) Thomas Merz 1997-98
  4. # ----------------------------------------------------------------------------
  5.  
  6. VERSION    = 0.6
  7.  
  8. # ---------------------- Platform options -------------------------------
  9. # One of the following platform defines must be set:
  10. # -DWIN32    Windows 32 bit
  11. #
  12. # -DDOS        MS-DOS
  13. #
  14. # -DMAC        Apple Macintosh
  15. #
  16. # -DNeXT    NeXTSTEP
  17. #
  18. # -DPOSIX    Posix compatible system
  19.  
  20. # ---------------------- Configuration options -------------------------------
  21. # Add the following defines for configuring several features:
  22. # -DUSE_TIFF    use TIFF library for reading TIFF files (requires -DUSE_JPEG)
  23. #        -DUSE_TIFF requires -ltiff and -ljpeg
  24. #
  25. # -DUSE_ZLIB    use zlib library for decompression (not yet implemented)
  26. #        -DUSE_zlib requires -lgz (sometimes -lz)
  27. #
  28. # -DUSE_JPEG    use IJG JPEG library for decompressing non-baseline JPEGs
  29. #        (currently not implemented)
  30. #        This is only required for rare JPEGs, most are handled
  31. #        internally in PDFlib. -DUSE_JPEG requires -ljpeg
  32. #
  33. # -DDEBUG    makes the PDF output more debug-friendly but may also
  34. #           obscure the bugs you're investigating (as predicted by 
  35. #           Heisenberg's law)
  36.  
  37. # TIFF and JPEG are not currently supported along with scripting
  38.  
  39. #DEFINES    = -DUSE_TIFF
  40. DEFINES        = 
  41. EXTRALIBS    = 
  42.  
  43. # ------------------- SWIG related stuff ----------------------------------
  44. SWIG        = swig
  45.  
  46. PDFLIB_TCL    = BINDINGS/TCL/pdflib.so
  47. SWIGOPT_TCL    = -tcl -DTCL -d pdflib_tcl
  48. TCL_OBJS    = pdftcl_wrap.o
  49. TCL_INC        = 
  50.  
  51. PDFLIB_PYTHON    = BINDINGS/PYTHON/pdflib.so
  52. SWIGOPT_PYTHON    = -python -d pdflib_python
  53. PYTHON_OBJS    = pdfpython_wrap.o
  54. PYTHON_INC    = -I/usr/include/python1.4
  55.  
  56. PDFLIB_PERL    = BINDINGS/PERL/pdflib.so
  57. SWIGOPT_PERL    = -perl5 -shadow -DPERL5 -d pdflib_perl
  58. PERL_OBJS    = pdfperl_wrap.o
  59. PERL_INC    = -I/usr/lib/perl5/i586-linux/5.004/CORE
  60.  
  61. SWIG_OBJS    = $(TCL_OBJS) $(PYTHON_OBJS) $(PERL_OBJS)
  62.  
  63. # ------------------- Make variables for Linux/Gnu Compiler ----------------
  64. # Additional include directories, e.g. for TIFF and ZLIB library headers
  65. INCDIR    = -I/usr/local/include $(TCL_INC) $(PYTHON_INC) $(PERL_INC)
  66. CC    = gcc
  67.  
  68. # needed only for swig
  69. PIC_OPT    = -fpic    # position independent code for shared libraries
  70. SO_OPT    = -shared
  71.  
  72. #CCOPT    = -g -c -Wall -pedantic -Wstrict-prototypes $(PIC_OPT) $(INCDIR) -DPOSIX
  73. CCOPT    = -g -c $(PIC_OPT) $(INCDIR) -DPOSIX
  74. LD    = gcc
  75. LDOPT    = 
  76. OBJ    = o
  77. EXE    =
  78. RM    = rm -f
  79. MV    = mv
  80. AR      = ar
  81. AROPTS  = rc
  82. RANLIB  = ranlib
  83. PDFLIB    = libpdf.a
  84. LIBS    = $(PDFLIB) -lm
  85.  
  86. # ------------------- Nothing of interest below ---------------------------
  87. DIRNAME = pdflib-$(VERSION)
  88. TARFILE    = pdflib-$(VERSION).tar
  89.  
  90. .c.$(OBJ) :
  91.     $(CC) $(CCOPT) $(DEFINES) $<
  92.  
  93. SRCS    = \
  94.     p_basic.c \
  95.     p_color.c \
  96.     p_draw.c \
  97.     p_filter.c \
  98.     p_font.c \
  99.     p_gif.c \
  100.     p_gstate.c \
  101.     p_hyper.c \
  102.     p_image.c \
  103.     p_jpeg.c \
  104.     p_text.c \
  105.     p_tiff.c \
  106.     p_util.c \
  107.     afmparse.c \
  108.     getopt.c \
  109.     hello.c \
  110.     imagepdf.c \
  111.     pdfclock.c \
  112.     pdfgraph.c \
  113.     pdfdemo.c \
  114.     pdflib.i \
  115.     text2pdf.c
  116.  
  117. OBJS    = \
  118.     p_basic.$(OBJ) \
  119.     p_color.$(OBJ) \
  120.     p_draw.$(OBJ) \
  121.     p_filter.$(OBJ) \
  122.     p_font.$(OBJ) \
  123.     p_gif.$(OBJ) \
  124.     p_gstate.$(OBJ) \
  125.     p_hyper.$(OBJ) \
  126.     p_image.$(OBJ) \
  127.     p_jpeg.$(OBJ) \
  128.     p_text.$(OBJ) \
  129.     p_tiff.$(OBJ) \
  130.     p_util.$(OBJ) \
  131.     afmparse.$(OBJ)
  132.  
  133. HEADERS    = \
  134.     afmparse.h \
  135.     pdf.h \
  136.     p_intern.h \
  137.     p_port.h \
  138.     ansi_e.h \
  139.     macrom_e.h \
  140.     pdfdoc_e.h
  141.  
  142. PROGS    = \
  143.     text2pdf$(EXE)    \
  144.     pdfclock$(EXE)    \
  145.     pdfgraph$(EXE)    \
  146.     pdfdemo$(EXE)    \
  147.     hello$(EXE)    \
  148.     imagepdf$(EXE)
  149.  
  150. SUPPORT    = \
  151.     makefile.gcc \
  152.     makefile.wat \
  153.     README \
  154.     CHANGES \
  155.     PDFlib-$(VERSION).pdf \
  156.     LICENSE
  157.  
  158. AFMS    = \
  159.     fonts/Courier.afm \
  160.     fonts/Courier-Bold.afm \
  161.     fonts/Courier-Oblique.afm \
  162.     fonts/Courier-BoldOblique.afm \
  163.     fonts/Helvetica.afm \
  164.     fonts/Helvetica-Bold.afm \
  165.     fonts/Helvetica-Oblique.afm \
  166.     fonts/Helvetica-BoldOblique.afm \
  167.     fonts/Symbol.afm \
  168.     fonts/Times-Roman.afm \
  169.     fonts/Times-Bold.afm \
  170.     fonts/Times-Italic.afm \
  171.     fonts/Times-BoldItalic.afm \
  172.     fonts/ZapfDingbats.afm \
  173.     fonts/afmlist \
  174.     fonts/afmlist.dos
  175.  
  176. BINDINGS = \
  177.     BINDINGS/C/nesrin.jpg        \
  178.     BINDINGS/C/acro_web.gif        \
  179.     BINDINGS/C/bible.tif        \
  180.     BINDINGS/C/graphdata        \
  181.     BINDINGS/CGI/clock.cgi        \
  182.     BINDINGS/TCL/hello.tcl        \
  183.     BINDINGS/TCL/pdfclock.tcl    \
  184.     BINDINGS/PERL/hello.pl        \
  185.     BINDINGS/PERL/pdfclock.pl    \
  186.     BINDINGS/PYTHON/hello.py        \
  187.     BINDINGS/PYTHON/pdfclock.py
  188.  
  189. WRAPPERS = \
  190.     pdftcl_wrap.c        \
  191.     pdfperl_wrap.c        \
  192.     pdfpython_wrap.c    \
  193.     BINDINGS/PERL/pdflib.pm
  194.  
  195. SHLIBS = \
  196.     $(PDFLIB_TCL)        \
  197.     $(PDFLIB_PYTHON)    \
  198.     $(PDFLIB_PERL)
  199.  
  200. DISTFILES= \
  201.     $(SRCS) $(HEADERS) $(SUPPORT) $(AFMS) $(BINDINGS) $(WRAPPERS)
  202.  
  203. all:    $(PDFLIB) $(PROGS) $(SHLIBS)
  204.  
  205. $(PDFLIB):    $(OBJS)
  206.     $(RM) $(PDFLIB)
  207.     $(AR) $(AROPTS) $(PDFLIB) $(OBJS)
  208.     $(RANLIB) $(PDFLIB)
  209.  
  210. # SWIG related files -------------------------------------------------
  211.  
  212. # The pdf*_wrap.c files are generated on my machine and redistributed.
  213. # For this reason you don't need to install swig if you want to have
  214. # scripting support in PDFlib!
  215.  
  216. pdfperl_wrap.c: pdflib.i pdf.h
  217.     $(SWIG) $(SWIGOPT_PERL) -o $@ pdflib.i
  218.     $(MV) pdflib.pm BINDINGS/PERL
  219.  
  220. pdftcl_wrap.c: pdflib.i pdf.h
  221.     $(SWIG) $(SWIGOPT_TCL) -o $@ pdflib.i
  222.  
  223. pdfpython_wrap.c: pdflib.i pdf.h
  224.     $(SWIG) $(SWIGOPT_PYTHON) -o $@ pdflib.i
  225.  
  226. # These are the actual shared libraries for scripting support
  227.  
  228. $(PDFLIB_PERL): $(OBJS) $(PERL_OBJS)
  229.     $(RM) $(PDFLIB_PERL)
  230.     $(CC) $(SO_OPT) $(OBJS) $(PERL_OBJS) -o $(PDFLIB_PERL)
  231.  
  232. $(PDFLIB_TCL): $(OBJS) $(TCL_OBJS)
  233.     $(RM) $(PDFLIB_TCL)
  234.     $(CC) $(SO_OPT) $(OBJS) $(TCL_OBJS) -o $(PDFLIB_TCL)
  235.  
  236. $(PDFLIB_PYTHON): $(OBJS) $(PYTHON_OBJS)
  237.     $(RM) $(PDFLIB_PYTHON)
  238.     $(CC) $(SO_OPT) $(OBJS) $(PYTHON_OBJS) -o $(PDFLIB_PYTHON)
  239.  
  240. # end SWIG support -------------------------------------------------
  241.  
  242. TESTFILES = \
  243.     BINDINGS/C/clock.pdf        \
  244.     BINDINGS/C/readme.pdf        \
  245.     BINDINGS/C/images.pdf        \
  246.     BINDINGS/C/hello.pdf        \
  247.     BINDINGS/C/demo.pdf        \
  248.     BINDINGS/PERL/hello_perl.pdf    \
  249.     BINDINGS/PERL/pdfclock_perl.pdf    \
  250.     BINDINGS/TCL/hello_tcl.pdf    \
  251.     BINDINGS/TCL/pdfclock_tcl.pdf    \
  252.     BINDINGS/PYTHON/hello_python.pdf    \
  253.     BINDINGS/PYTHON/pdfclock_python.pdf
  254.  
  255. # library clients
  256.  
  257. text2pdf$(EXE):    text2pdf.$(OBJ) $(PDFLIB) pdf.h p_port.h
  258.     $(LD) $(LDOPT) -o $@ $< $(LIBS) $(EXTRALIBS)
  259.  
  260. pdfgraph$(EXE):    pdfgraph.$(OBJ) $(PDFLIB) pdf.h p_port.h
  261.     $(LD) $(LDOPT) -o $@ $< $(LIBS) $(EXTRALIBS)
  262.  
  263. pdfdemo$(EXE):    pdfdemo.$(OBJ) $(PDFLIB) pdf.h p_port.h
  264.     $(LD) $(LDOPT) -o $@ $< $(LIBS) $(EXTRALIBS)
  265.  
  266. pdfclock$(EXE):    pdfclock.$(OBJ) $(PDFLIB) pdf.h p_port.h
  267.     $(LD) $(LDOPT) -o $@ $< $(LIBS) $(EXTRALIBS)
  268.  
  269. hello$(EXE):    hello.$(OBJ) $(PDFLIB) pdf.h p_port.h
  270.     $(LD) $(LDOPT) -o $@ $< $(LIBS) $(EXTRALIBS)
  271.  
  272. imagepdf$(EXE):    imagepdf.$(OBJ) $(PDFLIB) pdf.h p_port.h
  273.     $(LD) $(LDOPT) -o $@ $< $(LIBS) $(EXTRALIBS)
  274.  
  275. dist:
  276.     $(RM) -f $(TARFILE).gz;                \
  277.     ln -s . $(DIRNAME);                \
  278.     (for i in $(DISTFILES); do            \
  279.         echo $$i;                \
  280.     done) | sed "s;.*;$(DIRNAME)/&;" >distfiles;    \
  281.     tar cvf  $(TARFILE) `cat distfiles`;        \
  282.     gzip $(TARFILE);                \
  283.     rm -f $(DIRNAME) distfiles;
  284.  
  285. clean:
  286.     $(RM) *.$(OBJ) $(PROGS) $(PDFLIB) $(TESTFILES) $(SWIG_OBJS) $(SHLIBS)
  287.  
  288. # Don't use swigclean because it deletes files which cannot be
  289. # easily reconstructed (except on my machine)!
  290.  
  291. swigclean:
  292.     $(RM) pdflib_perl.doc pdflib_python.doc pdflib_tcl.doc
  293.     $(RM) $(SHLIBS)
  294.     $(RM) $(WRAPPERS)
  295.  
  296. BINDINGS/C/clock.pdf:    pdfclock$(EXE)
  297.     ./pdfclock -o BINDINGS/C/clock.pdf
  298.     
  299. BINDINGS/C/readme.pdf:    text2pdf$(EXE)
  300.     ./text2pdf -o BINDINGS/C/readme.pdf README
  301.     
  302. BINDINGS/C/images.pdf:    imagepdf$(EXE)
  303.     ./imagepdf -o BINDINGS/C/images.pdf BINDINGS/C/bible.tif BINDINGS/C/acro_web.gif BINDINGS/C/nesrin.jpg
  304.  
  305. BINDINGS/C/demo.pdf:    pdfdemo$(EXE)
  306.     ./pdfdemo BINDINGS/C/demo.pdf
  307.  
  308. BINDINGS/C/hello.pdf:    hello$(EXE)
  309.     ./hello BINDINGS/C/hello.pdf
  310.  
  311. BINDINGS/PERL/hello_perl.pdf:
  312.     (cd BINDINGS/PERL; ./hello.pl)
  313.  
  314. BINDINGS/PERL/pdfclock_perl.pdf:
  315.     (cd BINDINGS/PERL; ./pdfclock.pl)
  316.  
  317. BINDINGS/TCL/hello_tcl.pdf:
  318.     (cd BINDINGS/TCL; ./hello.tcl)
  319.  
  320. BINDINGS/TCL/pdfclock_tcl.pdf:
  321.     (cd BINDINGS/TCL; ./pdfclock.tcl)
  322.  
  323. BINDINGS/PYTHON/hello_python.pdf:
  324.     (cd BINDINGS/PYTHON; ./hello.py)
  325.  
  326. BINDINGS/PYTHON/pdfclock_python.pdf:
  327.     (cd BINDINGS/PYTHON; ./pdfclock.py)
  328.  
  329. test:    $(PROGS) $(TESTFILES)
  330.  
  331. # PDFlib library modules
  332. afmparse.$(OBJ):    afmparse.c afmparse.h
  333.  
  334. p_hyper.$(OBJ):        p_hyper.c pdf.h p_intern.h pdfdoc_e.h
  335.  
  336. p_color.$(OBJ):        p_color.c pdf.h p_intern.h
  337.  
  338. p_basic.$(OBJ):        p_basic.c pdf.h p_intern.h
  339.  
  340. p_draw.$(OBJ):        p_draw.c pdf.h p_intern.h
  341.  
  342. p_filter.$(OBJ):    p_filter.c pdf.h p_intern.h
  343.  
  344. p_font.$(OBJ):        p_font.c pdf.h p_intern.h ansi_e.h macrom_e.h
  345.  
  346. p_gif.$(OBJ):        p_gif.c pdf.h p_intern.h
  347.  
  348. p_gstate.$(OBJ):    p_gstate.c pdf.h p_intern.h
  349.  
  350. p_image.$(OBJ):        p_image.c pdf.h p_intern.h
  351.  
  352. p_jpeg.$(OBJ):        p_jpeg.c pdf.h p_intern.h
  353.  
  354. p_text.$(OBJ):        p_text.c pdf.h p_intern.h
  355.  
  356. p_tiff.$(OBJ):        p_tiff.c pdf.h p_intern.h
  357.  
  358. p_util.$(OBJ):        p_util.c pdf.h p_intern.h
  359.